home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 31 / Commodore_Free_Issue_31_2009_Commodore_Computer_Club.d64 / iv m piper < prev    next >
Text File  |  2023-02-26  |  5KB  |  189 lines

  1. u
  2.  
  3. *************************************
  4.       Interview with Martin Piper
  5.             Berzerk Redux
  6.           By Andrew Fisher
  7. *************************************
  8.  
  9. http://noname.c64.org/csdb/release/?id
  10. =80567
  11.  
  12. 2009 has seen two fantastic game
  13. releases based on early 1980s games
  14. Fortress of Narzod was converted from
  15. the Vectrex, and now the arcade
  16. classic Berzerk has made the jump to
  17. the C64. Commodore Free talks to
  18. programmer Martin Piper.
  19.  
  20. Q. How did you become interested in
  21. converting Berzerk to the C64?
  22.  
  23. I'm relatively old, so I can remember
  24. the arcade machines. So when Trip6
  25. started this thread
  26. http://noname.c64.org/csdb/forums/?roo
  27. mid=11&topicid=58028&showallposts=1 I
  28. was interested to see what he had
  29. actually got. When it turned out to
  30. be C sources it became obvious it
  31. wasn't really the arcade version of
  32. Berzerk which uses Z80(ish). So I
  33. looked for the 6502 Atari version
  34. instead and did a really quick hack
  35. to get it to partially run on the
  36. C64. But the Atari code spent most of
  37. its time in a video update loop so it
  38. was too slow on the C64. Also the
  39. Atari version lacked speech and game
  40. play aspects from the arcade version
  41. so I shelved it.
  42.  
  43. Then when nobody else came up with a
  44. version I thought to myself that I
  45. would quickly test out the basic
  46. technical requirements to get a feel
  47. for how long it would take to do a
  48. new version. Chiefly these were:
  49.  
  50. 1) Getting NMI samples working with
  51.    the multiplexor.
  52. 2) Then seeing how many segments of
  53.    speech could be squeezed into
  54.    realistic memory conditions.
  55. 3) Maze generation that did not
  56.    produce a blocked route for the
  57.    player.
  58. 4) Pixel accurate collision detection
  59.    or background and sprites (just
  60.    like the arcade) using the VIC
  61.    registers.
  62.  
  63. That went surprisingly quickly and
  64. the game play then naturally came
  65. along.
  66.  
  67. The polish of the game, adding
  68. Zeldin's excellent artwork with sound
  69. effects music and hi-score saving,
  70. actually took longer to code than the
  71. main game. :)
  72.  
  73. Q. Did you make use of the source
  74. code from other machines?
  75.  
  76. In this version no, it's all coded
  77. from scratch or using existing
  78. libraries such as the multiplexor,
  79. sound etc.
  80.  
  81. Q. Did you program it on a real
  82. machine or emulator?
  83.  
  84. 99% of the work used VICE because it
  85. has a couple of my hacks (submitted
  86. to the main tree now) to allow it to
  87. load labels from ACME (also with some
  88. of my hacks) and show extended
  89. register information in the CPU
  90. execution history. This aids
  91. development because it lets me debug
  92. easier than a normal C64. The Alt+W
  93. warp speed feature in VICE also helps
  94. improve development time because I no
  95. longer had to wait for decompression
  96. or loading when testing each new code
  97. iteration. The downside of such
  98. development is that now sometimes I
  99. find myself pressing Alt+W when I am
  100. web browsing or waiting for a large
  101. C++ project compilation to finish...
  102. :)
  103.  
  104. Only when I wanted to check
  105. everything really works, like the
  106. updated VIC collision register code,
  107. did I test on a real machine. I also
  108. tested on Hoxs64 and CCS64 just to be
  109. sure.
  110.  
  111. Q. What other utilities did you use
  112. to create the game?
  113.  
  114. ACME (with some label producing
  115. hacks), my compression utility (on
  116. codebase64), CharPad and SpritePad. I
  117. gather Zeldin used Koala Paint.
  118.  
  119. Q. How did you transfer the speech
  120. samples and play them in the game?
  121.  
  122. I found the samples from the old MAME
  123. version at 22kHz 8 bit mono, down
  124. converted them to 6kHz and then
  125. converted them to 4 bit samples using
  126. a quick hack custom tool.
  127.  
  128. Q. Have you played a real Berzerk
  129. arcade machine in the past?
  130.  
  131. Yes, once or twice in the dim past.
  132. Mostly I used MAME to check the game
  133. play with this conversion.
  134.  
  135. Q. Will you be trying to create an
  136. "enhanced" version as some people
  137. have suggested?
  138.  
  139. Yes. Much better graphics are
  140. planned. I also want to try to
  141. improve the speech a bit more by
  142. getting closer to the raw data using
  143. the LPC decompression that MAME now
  144. uses. Game play will be changed a bit
  145. as well. With better graphics the
  146. "bullet proof bow tie" might have to
  147. go as there won't be a gap between
  148. the head and shoulders for the bullet
  149. to pass through. :( I'm half thinking
  150. of having some boss robots every few
  151. rooms as well, maybe locked doors
  152. that only open after several waves of
  153. robots are cleared, two player, etc.
  154. We will see. :)
  155.  
  156. Q. Why did you decide to give the
  157. bounty to pay for CSDb's hosting
  158. costs?
  159.  
  160. I like to be able to help the
  161. community when I can and this version
  162. was only really a few days hacking
  163. around on something I found
  164. interesting. It is a welcome rest
  165. from my normal heavy duty C++
  166. programming. :)
  167.  
  168. Q. Are you working on any other C64
  169. projects at the moment?
  170.  
  171. Mainly tweaking common libraries here
  172. and there which are all available for
  173. anyone to use
  174. http://codebase64.org/doku.php?id=proj
  175. ects:resurrection
  176.  
  177. I'm trying to find sources to
  178. resurrect a couple of old projects I
  179. was working on many years ago. But my
  180. work disks from back then are sadly
  181. not well documented.
  182.  
  183. Thanks to Martin for answering my
  184. questions, and for all his coding
  185. efforts on Berzerk.
  186.  
  187. --
  188.  
  189.